package other;

import java.util.Arrays;

public class _leetcode_1_4 {


    public String minimizeError(String[] prices, int target) {
        int min = 0, max = 0;
        double[] array = new double[prices.length];
        for (int i = 0; i < prices.length; i++) {
            double p = Double.parseDouble(prices[i]);
            int floor = (int) Math.floor(p);
            int ceil = (int) Math.ceil(p);
            min += floor;
            max += ceil;
            array[i] = p - floor;
        }
        if (target < min || target > max)
            return "-1";
        Arrays.sort(array);
        double result = 0;
        int count = prices.length - target + min;
        for (int i = 0; i < array.length; i++) {
            if (i < count)
                result += array[i];
            else
                result += (1 - array[i]);
        }
        return String.format("%.3f", result);
    }

    public static void main(String[] args) {

//        String[] prices = {"176.482", "198.901", "36.649", "484.363", "39.106", "706.278", "237.805", "606.143", "909.029", "397.232", "291.582", "155.740", "504.388", "908.987", "783.835", "242.981", "750.261", "80.856", "392.332", "387.279", "119.694", "724.676", "106.957", "235.810", "202.762", "680.192", "228.342", "639.083", "581.189", "582.050", "214.249", "594.841", "280.911", "900.931", "29.227", "27.418", "294.318", "108.824", "248.889", "62.516", "691.337", "965.642", "937.107", "699.067", "999.482", "761.636", "894.648", "573.063", "253.617", "645.941", "101.146", "13.341", "350.921", "249.666", "185.062", "628.160", "466.778", "136.878", "799.233", "445.992", "781.561", "765.179", "715.129", "898.270", "829.027", "291.306", "960.678", "79.816", "271.794", "11.481", "91.196", "697.517", "549.232", "714.818", "808.141", "653.918", "40.628", "497.676", "722.596", "176.944", "598.296", "936.731", "562.226", "161.292", "103.156", "552.001", "827.166", "125.729", "172.795", "94.795", "458.770", "584.536", "192.888", "99.168", "80.858", "500.447", "873.452", "256.456", "685.043", "700.272", "696.424", "861.629", "70.851", "554.679", "785.407", "614.120", "336.342", "630.633", "849.062", "705.911", "899.603", "230.828", "912.370", "173.113", "550.592", "621.038", "189.125", "783.173", "180.648", "323.832", "379.300",
//                "900.027", "345.017", "948.221", "30.584", "571.719", "336.961", "438.852", "539.295", "511.785", "733.012", "172.039", "656.239", "78.881", "272.224", "350.091", "134.352", "640.695", "561.174", "760.949", "731.220", "188.564", "800.484", "859.406", "765.421", "762.566", "913.382", "836.858", "425.125", "974.211", "501.163", "826.763", "984.652", "634.616", "251.411", "284.561", "577.928", "102.397", "230.549", "350.442", "960.192", "424.219", "856.516", "489.991", "674.620", "310.060", "970.275", "771.297", "527.096", "452.818", "61.604", "324.661", "504.833", "765.907", "594.536", "23.124", "836.986", "932.868", "962.289", "576.681", "659.346", "688.344", "809.890", "209.888", "899.789", "303.385", "782.461", "638.753", "937.564", "750.771", "206.505", "871.730", "242.697", "128.613", "382.760", "24.371", "995.515", "965.332", "23.977", "324.923", "699.972", "540.356", "733.206", "935.280", "726.212", "887.225", "733.830", "922.663", "507.836", "729.250", "561.031", "31.231", "55.667", "740.038", "917.949", "158.097", "466.824", "162.507", "11.590", "270.021", "813.393", "467.459", "777.197", "926.727", "416.902", "923.274", "296.852", "99.172", "715.083", "41.008", "743.795", "618.281", "18.793", "284.030", "627.872", "631.400", "428.253", "745.996", "874.448", "495.478", "585.807",
//                "339.294", "351.812", "799.344", "883.373", "937.590", "362.691", "557.557", "648.369", "409.413", "982.339", "962.199", "202.624", "688.881", "294.993", "296.087", "423.256", "773.650", "241.432", "154.863", "269.898", "863.123", "202.014", "338.028", "30.240", "680.904", "747.531", "407.863", "811.076", "93.848", "641.073", "764.963", "838.325", "361.577", "234.191", "453.184", "227.976", "379.927", "414.814", "727.165", "315.090", "8.278", "498.603", "34.115", "161.057", "812.691", "709.270", "698.997", "303.160", "988.946", "876.278", "14.155", "916.828", "185.835", "77.105", "880.009", "157.053", "17.036", "457.516", "961.624", "703.730", "527.528", "125.302", "323.105", "517.306", "556.921", "977.464", "130.114", "980.489", "31.171", "141.576", "715.355", "749.697", "30.323", "498.228", "485.567", "885.160", "294.925", "651.530", "198.375", "722.456", "670.144", "381.699", "656.074", "208.039", "251.729", "758.336", "89.308", "564.766", "830.903", "117.039", "796.570", "754.498", "168.058", "260.893", "60.091", "355.720", "992.158", "460.914", "598.943", "309.637", "847.000", "655.260", "955.832", "622.572", "682.282", "301.806", "244.942", "750.907", "286.629", "180.590", "928.372", "734.978", "660.173", "465.119", "719.643", "561.499", "834.548", "731.571", "428.803", "244.184",
//                "383.744", "840.801", "353.256", "20.204", "782.414", "523.003", "154.162", "589.404", "989.569", "637.187", "281.555", "303.581", "448.380", "345.457", "286.025", "735.056", "366.298", "528.389", "779.217", "198.358", "604.072", "769.896", "444.242", "733.766", "458.694", "436.066", "779.673", "345.949", "501.780", "922.513", "253.129", "786.147", "824.602", "222.812", "396.176", "66.596", "965.756", "213.505", "188.498", "230.595", "512.001", "86.509", "888.709", "525.894", "670.177", "292.822", "883.236", "716.733", "214.218", "618.535", "324.968", "79.676", "756.772", "847.676", "581.219", "752.641", "746.612", "455.466", "537.155", "987.375", "10.434", "728.776", "33.588", "632.033", "238.435", "193.073", "49.466", "93.625", "462.667", "214.527", "637.316", "852.521", "358.107", "740.765", "868.695", "496.777", "289.177", "851.652", "78.733", "232.050", "420.353", "286.678", "403.990", "231.101", "191.268", "475.749", "894.321", "801.280", "463.420", "221.988", "480.282", "558.432", "326.906", "126.569", "503.138", "385.178", "717.114", "16.319", "720.830", "129.174", "145.721", "145.473", "746.880", "474.946", "562.019", "973.694", "581.162", "602.072", "593.771", "712.666", "381.776", "879.224", "609.789", "918.613", "850.640", "64.367", "266.904", "939.194", "205.984", "782.930",
//                "615.195", "831.299", "614.922", "270.153", "562.829", "755.024", "567.315", "595.991", "163.790", "501.046", "157.278", "799.262", "953.534", "540.850", "186.209", "472.951", "826.515", "641.681", "283.117"};

        String[] prices = {"2.000", "2.000", "2.000", "2.000", "2.000"};
//        String[] prices = {"2.500", "2.500", "2.500", "2.500", "2.500"};
//        String[] prices = {"0.700", "2.800", "4.900"};

        _leetcode_1_4 obj = new _leetcode_1_4();
        //        System.out.println(obj.minimizeError(prices, 252167));
        System.out.println(obj.minimizeError(prices, 10));
//        System.out.println(obj.minimizeError(prices, 11));
//        System.out.println(obj.minimizeError(prices, 8));
    }

}
